home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK2.toast / Development Kits (Disc 2) / TEC 1.3.1 / Headers & Libs / Interfaces / TextEncodingConverter.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-12  |  7.1 KB  |  164 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        TextEncodingConverter.h
  3.  
  4.      Contains:    Text Encoding Conversion Interfaces.
  5.  
  6.      Version:    System 7.7
  7.  
  8.      DRI:        Julio Gonzalez
  9.  
  10.      Copyright:    © 1984-1996 by Apple Computer, Inc.
  11.                  All rights reserved.
  12.  
  13.      Warning:    *** APPLE INTERNAL USE ONLY ***
  14.                  This file may contain unreleased API's
  15.  
  16.      BuildInfo:    Built by:            BuildGod
  17.                  With Interfacer:    2.0d13   (PowerPC native)
  18.                  From:                TextEncodingConverter.i
  19.                      Revision:        25
  20.                      Dated:            8/14/97
  21.                      Last change by:    jag
  22.                      Last comment:    RADAR 1674063: TECCreateOneToManyConverter API is flawed. There
  23.  
  24.      Bugs:        Report bugs to Radar component “System Interfaces”, “Latest”
  25.                  List the version information (from above) in the Problem Description.
  26.  
  27. */
  28. #ifndef __TEXTENCODINGCONVERTER__
  29. #define __TEXTENCODINGCONVERTER__
  30.  
  31. #ifndef __TYPES__
  32. #include <Types.h>
  33. #endif
  34. #ifndef __MIXEDMODE__
  35. #include <MixedMode.h>
  36. #endif
  37. #ifndef __TEXTCOMMON__
  38. #include <TextCommon.h>
  39. #endif
  40.  
  41. #ifdef __cplusplus
  42. extern "C" {
  43. #endif
  44.  
  45. #if PRAGMA_IMPORT_SUPPORTED
  46. #pragma import on
  47. #endif
  48.  
  49. #if PRAGMA_ALIGN_SUPPORTED
  50. #pragma options align=mac68k
  51. #endif
  52.  
  53. typedef OSType TECPluginSignature;
  54. typedef UInt32 TECPluginVersion;
  55. /* plugin signatures */
  56.  
  57. enum {
  58.     kTECSignature                = 'encv',
  59.     kTECUnicodePluginSignature    = 'puni',
  60.     kTECJapanesePluginSignature    = 'pjpn',
  61.     kTECChinesePluginSignature    = 'pzho',
  62.     kTECKoreanPluginSignature    = 'pkor'
  63. };
  64.  
  65. /* converter object reference */
  66. typedef struct OpaqueTECObjectRef* TECObjectRef;
  67. typedef struct OpaqueTECSnifferObjectRef* TECSnifferObjectRef;
  68. typedef OSType TECPluginSig;
  69. struct TECConversionInfo {
  70.     TextEncoding                     sourceEncoding;
  71.     TextEncoding                     destinationEncoding;
  72.     UInt16                             reserved1;
  73.     UInt16                             reserved2;
  74. };
  75. typedef struct TECConversionInfo TECConversionInfo;
  76.  
  77. /* return number of encodings types supported by user's configuraton of the encoding converter */
  78. extern pascal OSStatus TECCountAvailableTextEncodings(ItemCount *numberEncodings);
  79.  
  80. /* fill in an array of type TextEncoding passed in by the user with types of encodings the current configuration of the encoder can handle. */
  81. extern pascal OSStatus TECGetAvailableTextEncodings(TextEncoding availableEncodings[], ItemCount maxAvailableEncodings, ItemCount *actualAvailableEncodings);
  82.  
  83. /* return number of from-to encoding conversion pairs supported  */
  84. extern pascal OSStatus TECCountDirectTextEncodingConversions(ItemCount *numberOfEncodings);
  85.  
  86. /* fill in an array of type TextEncodingPair passed in by the user with types of encoding pairs the current configuration of the encoder can handle. */
  87. extern pascal OSStatus TECGetDirectTextEncodingConversions(TECConversionInfo availableConversions[], ItemCount maxAvailableConversions, ItemCount *actualAvailableConversions);
  88.  
  89. /* return number of encodings a given encoding can be converter into */
  90. extern pascal OSStatus TECCountDestinationTextEncodings(TextEncoding inputEncoding, ItemCount *numberOfEncodings);
  91.  
  92. /* fill in an array of type TextEncodingPair passed in by the user with types of encodings pairs the current configuration of the encoder can handle. */
  93. extern pascal OSStatus TECGetDestinationTextEncodings(TextEncoding inputEncoding, TextEncoding destinationEncodings[], ItemCount maxDestinationEncodings, ItemCount *actualDestinationEncodings);
  94.  
  95. /* get info about a text encoding */
  96. extern pascal OSStatus TECGetTextEncodingInternetName(TextEncoding textEncoding, Str255 encodingName);
  97.  
  98. extern pascal OSStatus TECGetTextEncodingFromInternetName(TextEncoding *textEncoding, ConstStr255Param encodingName);
  99.  
  100. /* create/dispose converters */
  101. extern pascal OSStatus TECCreateConverter(TECObjectRef *newEncodingConverter, TextEncoding inputEncoding, TextEncoding outputEncoding);
  102.  
  103. extern pascal OSStatus TECCreateConverterFromPath(TECObjectRef *newEncodingConverter, const TextEncoding inPath[], ItemCount inEncodings);
  104.  
  105. extern pascal OSStatus TECDisposeConverter(TECObjectRef newEncodingConverter);
  106.  
  107. /* convert text encodings */
  108. extern pascal OSStatus TECClearConverterContextInfo(TECObjectRef encodingConverter);
  109.  
  110. extern pascal OSStatus TECConvertText(TECObjectRef encodingConverter, ConstTextPtr inputBuffer, ByteCount inputBufferLength, ByteCount *actualInputLength, TextPtr outputBuffer, ByteCount outputBufferLength, ByteCount *actualOutputLength);
  111.  
  112. extern pascal OSStatus TECFlushText(TECObjectRef encodingConverter, TextPtr outputBuffer, ByteCount outputBufferLength, ByteCount *actualOutputLength);
  113.  
  114. /* one-to-many routines */
  115. extern pascal OSStatus TECCountSubTextEncodings(TextEncoding inputEncoding, ItemCount *numberOfEncodings);
  116.  
  117. extern pascal OSStatus TECGetSubTextEncodings(TextEncoding inputEncoding, TextEncoding subEncodings[], ItemCount maxSubEncodings, ItemCount *actualSubEncodings);
  118.  
  119. extern pascal OSStatus TECGetEncodingList(TECObjectRef encodingConverter, ItemCount *numEncodings, Handle *encodingList);
  120.  
  121. extern pascal OSStatus TECCreateOneToManyConverter(TECObjectRef *newEncodingConverter, TextEncoding inputEncoding, ItemCount numOutputEncodings, const TextEncoding outputEncodings[]);
  122.  
  123. extern pascal OSStatus TECConvertTextToMultipleEncodings(TECObjectRef encodingConverter, ConstTextPtr inputBuffer, ByteCount inputBufferLength, ByteCount *actualInputLength, TextPtr outputBuffer, ByteCount outputBufferLength, ByteCount *actualOutputLength, TextEncodingRun outEncodingsBuffer[], ItemCount maxOutEncodingRuns, ItemCount *actualOutEncodingRuns);
  124.  
  125. extern pascal OSStatus TECFlushMultipleEncodings(TECObjectRef encodingConverter, TextPtr outputBuffer, ByteCount outputBufferLength, ByteCount *actualOutputLength, TextEncodingRun outEncodingsBuffer[], ItemCount maxOutEncodingRuns, ItemCount *actualOutEncodingRuns);
  126.  
  127. /* international internet info */
  128. extern pascal OSStatus TECCountWebTextEncodings(RegionCode locale, ItemCount *numberEncodings);
  129.  
  130. extern pascal OSStatus TECGetWebTextEncodings(RegionCode locale, TextEncoding availableEncodings[], ItemCount maxAvailableEncodings, ItemCount *actualAvailableEncodings);
  131.  
  132. extern pascal OSStatus TECCountMailTextEncodings(RegionCode locale, ItemCount *numberEncodings);
  133.  
  134. extern pascal OSStatus TECGetMailTextEncodings(RegionCode locale, TextEncoding availableEncodings[], ItemCount maxAvailableEncodings, ItemCount *actualAvailableEncodings);
  135.  
  136. /* examine text encodings */
  137. extern pascal OSStatus TECCountAvailableSniffers(ItemCount *numberOfEncodings);
  138.  
  139. extern pascal OSStatus TECGetAvailableSniffers(TextEncoding availableSniffers[], ItemCount maxAvailableSniffers, ItemCount *actualAvailableSniffers);
  140.  
  141. extern pascal OSStatus TECCreateSniffer(TECSnifferObjectRef *encodingSniffer, TextEncoding testEncodings[], ItemCount numTextEncodings);
  142.  
  143. extern pascal OSStatus TECSniffTextEncoding(TECSnifferObjectRef encodingSniffer, TextPtr inputBuffer, ByteCount inputBufferLength, TextEncoding testEncodings[], ItemCount numTextEncodings, ItemCount numErrsArray[], ItemCount maxErrs, ItemCount numFeaturesArray[], ItemCount maxFeatures);
  144.  
  145. extern pascal OSStatus TECDisposeSniffer(TECSnifferObjectRef encodingSniffer);
  146.  
  147. extern pascal OSStatus TECClearSnifferContextInfo(TECSnifferObjectRef encodingSniffer);
  148.  
  149.  
  150. #if PRAGMA_ALIGN_SUPPORTED
  151. #pragma options align=reset
  152. #endif
  153.  
  154. #if PRAGMA_IMPORT_SUPPORTED
  155. #pragma import off
  156. #endif
  157.  
  158. #ifdef __cplusplus
  159. }
  160. #endif
  161.  
  162. #endif /* __TEXTENCODINGCONVERTER__ */
  163.  
  164.